home *** CD-ROM | disk | FTP | other *** search
-
-
-
- AAAATTTTTTTTRRRR____GGGGEEEETTTT((((2222)))) AAAATTTTTTTTRRRR____GGGGEEEETTTT((((2222))))
-
-
-
- NNNNAAAAMMMMEEEE
- attr_get, attr_getf - get the value of a user attribute of a filesystem
- object
-
- CCCC SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- ####iiiinnnncccclllluuuuddddeeee <<<<ssssyyyyssss////aaaattttttttrrrriiiibbbbuuuutttteeeessss....hhhh>>>>
-
- iiiinnnntttt aaaattttttttrrrr____ggggeeeetttt ((((ccccoooonnnnsssstttt cccchhhhaaaarrrr ****ppppaaaatttthhhh,,,, ccccoooonnnnsssstttt cccchhhhaaaarrrr ****aaaattttttttrrrrnnnnaaaammmmeeee,,,,
- cccchhhhaaaarrrr ****aaaattttttttrrrrvvvvaaaalllluuuueeee,,,, iiiinnnntttt ****vvvvaaaalllluuuueeeelllleeeennnnggggtttthhhh,,,, iiiinnnntttt ffffllllaaaaggggssss))));;;;
-
- iiiinnnntttt aaaattttttttrrrr____ggggeeeettttffff ((((iiiinnnntttt ffffdddd,,,, ccccoooonnnnsssstttt cccchhhhaaaarrrr ****aaaattttttttrrrrnnnnaaaammmmeeee,,,,
- cccchhhhaaaarrrr ****aaaattttttttrrrrvvvvaaaalllluuuueeee,,,, iiiinnnntttt ****vvvvaaaalllluuuueeeelllleeeennnnggggtttthhhh,,,, iiiinnnntttt ffffllllaaaaggggssss))));;;;
-
- OOOOVVVVEEEERRRRVVVVIIIIEEEEWWWW
- The _a_t_t_r group of system calls implement the ability for a user to attach
- name/value pairs to objects within the filesystem.
-
- They could be used to store meta-information about the file. For example
- "character-set=kanji" could tell a document browser to use the Kanji
- character set when displaying that document and "thumbnail=..." could
- provide a reduced resolution overview of a high resolution graphic image.
-
- The _n_a_m_e_s can be up to MAXNAMELEN bytes in length, terminated by the
- first 0 byte. The intent is that they be printable ASCII (or other
- character set) names for the attribute.
-
- The _v_a_l_u_e_s can be up to ATTR_MAX_VALUELEN (currently 64KB) of arbitrary
- binary data.
-
- Attributes can be attached to all types of inodes: regular files,
- directories, symbolic links, device nodes, etc.
-
- There are 2 disjoint attribute name spaces associated with every
- filesystem object. They are the rrrrooooooootttt and uuuusssseeeerrrr address spaces. The rrrrooooooootttt
- address space is accessible only to privileged users, and only then by
- specifying a flag argument to the function call. A privileged user can
- be either the superuser in an IIIIRRRRIIIIXXXX environment, or a user with
- CCCCAAAAPPPP____DDDDEEEEVVVVIIIICCCCEEEE____MMMMGGGGTTTT capability. Other users will not see or be able to modify
- attributes in the rrrrooooooootttt address space. The uuuusssseeeerrrr address space is
- protected by the normal file permissions mechanism, so the owner of the
- file can decide who is able to see and/or modify the value of attributes
- on any particular file.
-
- Attributes are currently fully supported only in the XFS and CXFS
- filesystem types. Other filesystem types may provide a partial
- implementation.
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- The _a_t_t_r__g_e_t and _a_t_t_r__g_e_t_f functions provide a way to retrieve the value
- of an attribute.
-
-
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- AAAATTTTTTTTRRRR____GGGGEEEETTTT((((2222)))) AAAATTTTTTTTRRRR____GGGGEEEETTTT((((2222))))
-
-
-
- _P_a_t_h points to a path name for a filesystem object, and _f_d refers to the
- file descriptor associated with a file. If the attribute _a_t_t_r_n_a_m_e
- exists, the value associated with it will be copied into the _a_t_t_r_v_a_l_u_e
- buffer. The _v_a_l_u_e_l_e_n_g_t_h argument is an input/output argument that on the
- call to _a_t_t_r__g_e_t should contain the maximum size of attribute value the
- process is willing to accept. On return, the _v_a_l_u_e_l_e_n_g_t_h will have been
- modified to show the actual size of the attribute value returned. The
- _f_l_a_g_s argument can contain the following symbols bitwise OR'ed together:
-
- ATTR_ROOT
- Look for _a_t_t_r_n_a_m_e in the rrrrooooooootttt address space, not in the uuuusssseeeerrrr address
- space. (limited to use by super-user only)
-
- ATTR_DONTFOLLOW
- Do not follow symbolic links when resolving a _p_a_t_h on an _a_t_t_r__g_e_t
- function call. The default is to follow symbolic links.
-
- _a_t_t_r__g_e_t will fail if one or more of the following are true:
-
- [ENOATTR] The attribute name given is not associated with the
- indicated filesystem object.
-
- [E2BIG] The value of the given attribute is too large to fit
- into the buffer. The integer that the _v_a_l_u_e_l_e_n_g_t_h
- argument points to has been modified to show the actual
- number of bytes that would be required to store the
- value of that attribute.
-
- [ENOENT] The named file does not exist.
-
- [EPERM] The effective user ID does not match the owner of the
- file and the effective user ID is not super-user.
-
- [ENOTDIR] A component of the path prefix is not a directory.
-
- [EACCES] Search permission is denied on a component of the path
- prefix.
-
- [EINVAL] A bit was set in the _f_l_a_g argument that is not defined
- for this system call.
-
- [EFAULT] _P_a_t_h, _a_t_t_r_n_a_m_e, _a_t_t_r_v_a_l_u_e, or _v_a_l_u_e_l_e_n_g_t_h points outside
- the allocated address space of the process.
-
- [ELOOP] A path name lookup involved too many symbolic links.
-
- [ENAMETOOLONG] The length of _p_a_t_h exceeds {_M_A_X_P_A_T_H_L_E_N}, or a pathname
- component is longer than {_M_A_X_N_A_M_E_L_E_N}.
-
- _a_t_t_r__g_e_t_f will fail if:
-
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-
-
-
- AAAATTTTTTTTRRRR____GGGGEEEETTTT((((2222)))) AAAATTTTTTTTRRRR____GGGGEEEETTTT((((2222))))
-
-
-
- [ENOATTR] The attribute name given is not associated with the
- indicated filesystem object.
-
- [E2BIG] The value of the given attribute is too large to fit into
- the buffer. The integer that the _v_a_l_u_e_l_e_n_g_t_h argument
- points to has been modified to show the actual number of
- bytes that would be required to store the value of that
- attribute.
-
- [EINVAL] A bit was set in the _f_l_a_g argument that is not defined for
- this system call, or _f_d refers to a socket, not a file.
-
- [EFAULT] _A_t_t_r_n_a_m_e, _a_t_t_r_v_a_l_u_e, or _v_a_l_u_e_l_e_n_g_t_h points outside the
- allocated address space of the process.
-
- [EBADF] _F_d does not refer to a valid descriptor.
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- attr(1),
- attr_list(2), attr_listf(2)
- attr_multi(2), attr_multif(2)
- attr_remove(2), attr_removef(2),
- attr_set(2), attr_setf(2),
-
- DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
- Upon successful completion, a value of 0 is returned. Otherwise, a value
- of -1 is returned and _e_r_r_n_o is set to indicate the error.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 3333
-
-
-
-